SSM Run Commandのみで、EC2にCloudWatch Logsエージェントを設定してみた
はじめに
こんにちは、アノテーションのなかたです。
今回は、EC2にCloudWatch LogsエージェントをAWS Systems Manager Run Commandのみで設定してみました。
やってみる
1. EC2の起動
SSM接続できることがRun Commandの前提であるため、以下のようなインスタンスを用意します。
- AMIは、
Amazon Linux 2023
を使用します パブリックIPの割り当て
を有効にします- パブリックサブネットに起動します
- セキュリティグループは、HTTPSの
10.0.0.0/16
を解放します
IAMロールに紐づけるIAMポリシー
AmazonSSMManagedInstanceCore
CloudWatchAgentServerPolicy
CloudWatchLogsへの書き込み権限も必要となるため
2. CloudWatch Logsエージェントのインストール
SSM Run CommandでAWS-RunShellScript
ドキュメントを使用します。
実行するスクリプトは以下を用います。
/var/log/messages
をログファイルとして取得したいため、Amazon Linux 2023
ではrsyslog
のインストールが必要になります。
# CloudWatch Logsエージェントのインストール
wget https://s3.ap-northeast-1.amazonaws.com/amazoncloudwatch-agent-ap-northeast-1/centos/amd64/latest/amazon-cloudwatch-agent.rpm
rpm -U ./amazon-cloudwatch-agent.rpm
# rsyslogのインストール
dnf install -y rsyslog
systemctl enable rsyslog
systemctl start rsyslog
3. SSM Parameter StoreにCloudWatch Logsエージェントファイルの設定
こちらは、後ほどEC2にCloudWatch Logsエージェントファイルを設定するための手順です。
パラメータの名前は、CloudWatchLogsAgentJSON
とします。
入力したエージェントファイルのJSONは以下になります。
{
"agent": {
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/messages",
"log_group_class": "STANDARD",
"log_group_name": "amazon-cloudwatch-agent.log",
"log_stream_name": "{instance_id}",
"retention_in_days": 1
}
]
}
}
}
}
4. CloudWatch Logsエージェントファイルの設定
こちらは、AmazonCloudWatch-ManageAgent
ドキュメントを使用します。
Actionはconfigure
とします。
また、Optional Configuration Location
に先ほど設定したSSMパラメータの値を入力します。
5. CloudWatchLogsエージェントの開始
こちらも、AmazonCloudWatch-ManageAgent
ドキュメントを使用します。
Actionはstart
とします。
6. CloudWatchログの確認
この時点でCloudWatchのロググループを表示すると、
指定した名前であるamazon-cloudwatch-agent.log
というログが確認できると思います。
おわりに
今まではEC2にSSH接続してインストールを行なっていましたが、今回行ったことにより画面をポチポチするだけでインストールが行えるようになります。
また、コマンドを覚える必要がなくなるため便利です。
参考にした記事
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。